<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;
use Illuminate\Routing\Redirector;

/**
 * 表单验证 测试
 * fyj
 * 20160504
 */
class TestForm extends Request
{
    protected  $redirector='';

    protected $rules = [
        'name' => 'required|max:2',
        'email' => 'required',
    ];
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        // 进行逻辑判断
        //允许所有用户登录
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     * 
     */
    public function rules()
    {
        return $this->rules;
        // return [
        //     'name' => 'required|max:255',
        //     'email' => 'required',
        // ];
    }
    // // 可选: 重写基类方法
    // public function forbiddenResponse()
    // {
    //   // 这个是可选的, 当认证失败时返回自定义的 HTTP 响应. 
    //   // (框架默认的行为是带着错误信息返回到起始页面)
    //   // 可以返回 Response 实例, 视图, 重定向或其它信息
    //   return Response::make('Permission denied foo!', 403);
    // }
      
      /**
       * 重写该方法
       * 返回特定的错误信息
       */
      public function response(array $errors)
      {
          $errors_data=[];
          foreach ($errors as $k=>$v)
          {
              switch ($k) {
                case 'name':
                  $errors_data['name']=['标题至少三个字符'];
                  break;
                case 'email':
                  # code...
                  $errors_data['email']=['邮箱不可为空'];
                  break;
              
              }
          }
          return $this->redirector->to($this->getRedirectUrl())->withInput()->withErrors($errors_data, 'default');
      }

}
